The invention relates generally to position encoders, and, in particular, to a position encoder system which offers unambiguous, non-binary, even counts in a modular framework.
The use of a rotatable code member which provides a coded output indicative of the angular position of the code member is a well-known and often-used technique for determining the position of rotating members. A plurality of tracks having light and dark segments are provided on the code member such that, depending upon the resolution required, any one position of the code member is represented by a unique code word. The code word comprises the portions of the various tracks which fall within the segment of arc on the code member associated with the code member position. Means are provided for detecting the particular code word associated with the code member position for which an indication is desired. Processing is then provided which interprets the code word obtained from the code member and which converts the code word into a form which is processable by the user.
The output format most often provided to the user is a binary-coded decimal format.
The number of counts provided by a particular code member is generally, a function of the number of tracks used. For example, if four tracks are used, the maximum count available 2.sup.4 or 16. Likewise, if 16 tracks are provided, the maximum count is typically 2.sup.16 or 65,536. When non-binary, i.e., non-power of two counts, are required less than the full complement of code words for the given number of tracks will be used. By non-power of two counts, it is meant a system count which does not equal the quantity two raised to some integer power. Therefore, for example, if a count of 60,000 were desired, a code member having sixteen tracks would be provided which has 60,000 of the possible 65,536 code words from the full code complement.
The situation becomes more complicated when an unambiguous count is desired. In the power of two-count, i.e., binary count, situation, an unambiguous count can be provided through the use of a gray code, or unit step code. With gray codes, only a single bit changes between adjacent words in the code sequence. Therefore, the identity of the code word depends solely upon the value of the bit which changes. In other codes several bits can change. Due to the nature of the track arrangement on the code member these transitions are often not simultaneous. Therefore ambiguities arise when the edges between codes are being scanned by the system.
Where a non-power of two count is desired, use of less than the full complement gray code typically destroys its single bit change per consecutive word characteristic. Therefore, an unambiguous non-binary (or non-power of two) count is not simply obtained.
In the past, non-power of two encoders have been custom-designed depending upon the particular count desired. That is, each encoder had to be designed with electronics unique to the particular encoder thereby providing little flexibility for the addition of options or variations in the output format or system count. This, in turn, dictated a higher cost for each encoder.
As mentioned above, the typical output format provided for a non-binary count encoder was binary-coded decimal. A predominant method of providing a non-binary count in binary coded decimal format is to encode the code member with a binary-coded decimal code. Not only does this approach limit the output format to binary-coded decimal, but also requires that much effort be spent on formulating the binary-coded decimal track arrangement on the code member itself. This approach, typically, does not provide an unambiguous format. Therefore, at the word edges of the code member, ambiguities will arise.
Another approach is to encode the non-power of two count on the code member in a binary-coded-decimal like format, using truncated gray codes. For example, if a count of zero through 359 is desired, a set of tracks is dedicated to providing counts for the one's digit of the count, and another set of tracks is dedicated to providing the hundreds and tens digits of the count. The sets of tracks are scrambled, with much effort, in order to satisfy the one bit change per word rule. As a result of this scrambling, custom electronics are required to descramble the code, with each set of electronics being unique to the particular system. One such system providing a particular non-power of two count is, therefore, fundamentally different from another such system providing a different non-power of two count. However, in all systems implemented in this manner, the unambiguous code word feature is provided.
The present invention provides an encoder system for supplying non-power of two, even counts which can be implemented in modular form and further wherein the distribution of processing functions to particular signal processing modules permits simple and inexpensive modification of the overall system for different non-power of two, even counts. Thus, the present invention provides a basic set of electronic processing circuitry which can be predesigned with minimal consideration of the actual count required. The implementation of different counts can then be performed by modifying certain of the standard modules, preferably a maximum of one or two modules, and the code member.
As an added benefit, the modular configuration of the present invention permits a variety of user processable system outputs. The user can specify the level of processing to be done by the encoder system, thereafter providing his/her own additional processing. This permits the system to be further customized to the particular requirements of a user without the cost of the typical customized encoder system. For example, if the user does not need a binary-coded decimal output, but has the facility to use a natural binary format, the present invention can be simply configured to provide a natural binary output with a minimum of cost. Alternatively, the user may desire an output which is in the encoded format. That is, the system provides the encoded word as detected from the code member. The user then provides the processing for converting the code word into the final position indication. Such an output format is easily provided by the present invention, with a minimum of modification and a minimum of cost.